package model

import (
	"gorm.io/gorm"
	"time"
)

type Messages struct {
	MessageId  uint           `gorm:"column:message_id;type:bigint UNSIGNED;comment:主键 ;primaryKey;not null;" json:"message_id"`    // 主键
	ReceiverId uint           `gorm:"column:receiver_id;type:bigint UNSIGNED;comment:用户1;not null;default:0;" json:"receiver_id"`   // 用户1
	SenderId   uint           `gorm:"column:sender_id;type:bigint UNSIGNED;comment:用户2;not null;default:0;" json:"sender_id"`       // 用户2
	MType      uint           `gorm:"column:m_type;type:bigint UNSIGNED;comment:消息类型: 0: 关注通知 1: 评论通知;default:NULL;" json:"m_type"` // 消息类型: 0: 关注通知 1: 评论通知
	Content    string         `gorm:"column:content;type:varchar(50);comment:内容;not null;" json:"content"`                          // 内容
	SendTime   time.Time      `gorm:"column:send_time;type:datetime(3);comment:发送时间;not null;" json:"send_time"`                    // 发送时间
	IsRead     uint           `gorm:"column:is_read;type:bigint UNSIGNED;comment:已读状态: 0:未读 1:已读;default:1;" json:"is_read"`        // 已读状态: 0:未读 1:已读
	IsExpired  string         `gorm:"column:is_expired;type:varchar(20);comment:是否过期;default:NULL;" json:"is_expired"`              // 是否过期
	CreatedAt  time.Time      `gorm:"column:created_at;type:datetime(3);default:NULL;" json:"created_at"`
	UpdatedAt  time.Time      `gorm:"column:updated_at;type:datetime(3);default:CURRENT_TIMESTAMP(3);" json:"updated_at"`
	DeletedAt  gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);default:NULL;" json:"deleted_at"`
}

func (m *Messages) TableName() string {
	return "messages"
}
